package com.xuelang.pipeline.domain.pipeline.repository;


import com.xuelang.pipeline.domain.pipeline.VariableSetting;

import java.util.Date;
import java.util.List;

/**
 * <p>流水线变量配置仓库接口</p>
 *
 * @author : yixin.lys
 * @date : 2024-06-13 13:40
 **/
public interface VariableSettingRepository {

    /**
     * 根据流水线code获取触发配置
     * @param pipelineCode
     * @return
     */
    List<VariableSetting> queryByPipelineCode(String pipelineCode);


    /**
     * 新增触发配置
     * @param variableSettingList
     * @param creatorId
     * @param createTime
     */
    void addBatch(List<VariableSetting> variableSettingList, String creatorId, Date createTime);


    /**
     * 更新触发配置
     * @param variableSettingList
     * @param updaterId
     * @param updateTime
     */
    void updateBatch(List<VariableSetting> variableSettingList, String updaterId, Date updateTime);


    /**
     * 根据id批量删除
     * @param idList
     */
    void removeByIds(List<Long> idList);

    /**
     * 根据流水线code批量删除
     * @param codeList
     */
    void removeByCodes(List<String> codeList);
    /**
     * 通过流水线模板uuid批量新增流水线任务
     *
     * @param pipelineTemplateUuid
     * @param toPipelineCode
     * @param userId
     * @return
     */
    Boolean batchSaveByPipelineTemplateUuid(String pipelineTemplateUuid, String toPipelineCode, String userId);
}
